

from core.himesis import Himesis
import cPickle as pickle
from uuid import UUID

class HSM2SM(Himesis):
    def __init__(self):
        """
        Creates the himesis graph representing the AToM3 model HSM2SM.
        """
        # Flag this instance as compiled now
        self.is_compiled = True
        
        super(HSM2SM, self).__init__(name='HSM2SM', num_nodes=14, edges=[])
        
        # Add the edges
        self.add_edges([(3, 8), (8, 5), (3, 9), (9, 7), (5, 0), (0, 7), (1, 10), (1, 11), (6, 2), (2, 4), (10, 6), (11, 4), (13, 4), (5, 12), (12, 6), (7, 13)])
        # Set the graph attributes
        self["mm__"] = pickle.loads("""(lp1
S'SimpleDSLTransMM'
p2
a.""")
        self["name"] = """SM2SM"""
        self["GUID__"] = UUID('b9ee48dd-9715-4d10-b66c-2db5bde11821')
        
        # Set the node attributes
        self.vs[0]["mm__"] = """directLink_T"""
        self.vs[0]["GUID__"] = UUID('41d5f354-9845-4f57-8210-15de3ecbe5c1')
        self.vs[1]["mm__"] = """MatchModel"""
        self.vs[1]["GUID__"] = UUID('22116e7d-6f7c-40e2-8474-86586a5d5107')
        self.vs[2]["mm__"] = """indirectLink_S"""
        self.vs[2]["GUID__"] = UUID('7dcf8ac9-0ea9-4b5b-9f11-5c9a0bcd806e')
        self.vs[3]["mm__"] = """ApplyModel"""
        self.vs[3]["GUID__"] = UUID('fef6d877-6a8b-4b03-a5f6-9bcbe2c3cb6f')
        self.vs[4]["mm__"] = """Male_S"""
        self.vs[4]["name"] = """m"""
        self.vs[4]["GUID__"] = UUID('26ecd3b5-84c3-4c0a-b8cc-623ef898fd59')
        self.vs[5]["mm__"] = """Station_T"""
        self.vs[5]["name"] = """s"""
        self.vs[5]["GUID__"] = UUID('fbcded76-93bf-4c27-8ad1-4e95aa1a211f')
        self.vs[6]["mm__"] = """Station_S"""
        self.vs[6]["name"] = """s"""
        self.vs[6]["GUID__"] = UUID('6583406b-5edc-4863-a54d-b535d6c9f060')
        self.vs[7]["mm__"] = """Male_T"""
        self.vs[7]["name"] = """m"""
        self.vs[7]["GUID__"] = UUID('5674d92b-a065-43d4-aa79-be08fd5b59a9')
        self.vs[8]["mm__"] = """apply_contains"""
        self.vs[8]["GUID__"] = UUID('b7afe010-657c-4cbd-9dfb-a43dfc9a74eb')
        self.vs[9]["mm__"] = """apply_contains"""
        self.vs[9]["GUID__"] = UUID('b310215b-abdc-46bb-bbd1-78098758dde9')
        self.vs[10]["mm__"] = """match_contains"""
        self.vs[10]["GUID__"] = UUID('af5037c9-6574-431a-a517-b3b1f3855c35')
        self.vs[11]["mm__"] = """match_contains"""
        self.vs[11]["GUID__"] = UUID('53e41ac1-438b-45b0-acee-1243bbf4eab0')
        self.vs[12]["mm__"] = """backward_link"""
        self.vs[12]["GUID__"] = UUID('27f1ba18-b9ae-4dc1-92d5-e2a3f60706c7')
        self.vs[13]["mm__"] = """backward_link"""
        self.vs[13]["GUID__"] = UUID('94edf38e-0b24-4bc8-b241-3ab6c7497e4a')

